/**
 * 函数节流
 * @description 在规定时间内 无论用户点击了多少次 函数只触发一次
 * @param {Function} func - 要节流的函数
 * @param {Number} interval - 节流时间(默认1000ms)
 * @return void
 */
let timer, flag;
export function throttling(func, interval = 1000) {
	try{
		if (!flag) {
			flag = true;
			typeof func === 'function' && func();
			timer = setTimeout(() => {
				flag = false;
			}, interval);
		}
	}catch(e){}
}

/**
 * 函数防抖
 * @description 在规定时间内 用户导致动作被连续频繁触发的情况下 函数只会被执行一次
 * @param {Function} func - 要防抖的函数
 * @param {Number} interval - 防抖时间(默认1000ms)
 * @return void
 */
let timeout = null;
export function chattering(func, interval = 1000) {
	try{
		if (timeout !== null) clearTimeout(timeout);
		timeout = setTimeout(() => {
			typeof func === 'function' && func();
		}, interval);
	}catch(e){}
}


// 更多函数...
